|
Date : 9 septembre 1991 Protection : MOT DE PASSE Programme : HARDNOVA Outils : SOFT-ICE V2.50 Fichier : DUME.EXE Temps pass� : 2 HEURES Soci�t� : ELECTRONIC ARTS Divers : Origine : INDONESIE Num�ro : 141 C'est le premier ELECTRONIC ARTS sur lequel je me casse les dents pour la xi�me fois. Lorsqu'on n'arrive pas � trouver l'endroit o� le soft teste la validit� du mot de passe entr� il faut partir d�s l'origine c'est � dire mettre un point d'arr�t sur le port clavier en 60h RW et remonter. Pour tester la touche ENTER il suffit de poser l'�galit� suivante; BPIO 60h RW eq 1C ( sous SOFT-ICE ). J'ai 'p�dal�' dans le vide un bon moment avant de trouver o� les caract�res �taient rang�s en m�moire: SS:920 nombre de caract�res entr�s ( nombre qui sera compar� � CX ) SS:921 premier caract�re. SS:922 second caract�re. SS:923 etc... La touche ENTER peut �galement �tre test� par un BP sur l'INT 21 sous- fonction 06. Voici la routine de v�rification des caract�res entr�s avec ceux choisi par le programme d'une mani�re al�atoire, ceux-ci sont cod�s avec un XOR 06 dans le fichier DUME.EXE : CS=2627 CS:0AF8 8A84B113 MOV <ͻ AL,[SI+13B1] ; Car. choisi par le soft. CS:0AFC 3C2A CMP � AL,2A ; Si 2A fin de chaine. CS:0AFE 740E ��< JZ � 0B0E ; Si dernier on v�rifie CX. CS:0B00 3406 � XOR � AL,06 ; Chaque car. est d�cod�. CS:0B02 363A872009 � CMP � AL,SS:[BX+0920] ; Teste la chaine... CS:0B07 753D �����< JNZ � 0B46 ; Mauvais si # 0. CS:0B09 46 � � INC � SI ; Prochain car. du soft. CS:0B0A 43 � � INC � BX ; Prochain car. entr�. CS:0B0B 49 � � DEC � CX ; CX contient le nombre de caract�res � � � ; de la r�ponse du programme. CS:0B0C EBEA � � JMP >ͼ 0AF8 ; Boucle la chaine. CS:0B0E 83F900 � ��> CMP CX,+00 ; CX = 0 si tous les caract�res � ; on �t� test�. CS:0B11 7408 � JZ 0B1B ; Suite du programme si OK. � CS:0B46 <�ͼ ; Mauvaise r�ponse. Il faut donc que le r�sultat de la comparaison en CS:0B02 soit �gale � z�ro. Pour cela il suffit de placer deux NOP en CS:0B07 pour que la routine se poursuive comme si le caract�re �tait le m�me que celui demand�. Il faut �galement que le contenu de CX soit �gal � z�ro lorsque le programme le teste puisqu'il correspond au nombre de caract�res que le joueur � tap� et qui figure en SS:920 avec le nombre que le programme a fourni. Donc la �galement il faut forcer le saut qui suit. Remplacer le saut conditionnel en 0B11 par un JMP. ( EB ) Avec PCTOOLS chercher la chaine 2009753D et modifier 753D par 9090, puis la chaine 83F9007408 et remplacer 74 par EB. FREDDY |